package com.ruoyi.cms.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 分类对象 cms_category
 *
 * @author houyong
 * @date 2025-11-08
 */
public class CmsCategory extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    private String id;

    /**
     * 所属栏目
     */
    @Excel(name = "所属栏目")
    private String categoryId;

    /**
     * 是否是叶子节点
     */
    @Excel(name = "是否是叶子节点")
    private Long leaf;

    /**
     * 顶级id
     */
    @Excel(name = "顶级id")
    private String topId;

    /**
     * 字典对应编号
     */
    @Excel(name = "字典对应编号")
    private Long dictId;

    /**
     * 文章管理的内容模型ID
     */
    @Excel(name = "文章管理的内容模型ID")
    private String mdiyModelId;

    /**
     * 栏目管理的内容模型ID
     */
    @Excel(name = "栏目管理的内容模型ID")
    private String mdiyCategoryModelId;

    /**
     * 父类型编号，多个id逗号
     */
    @Excel(name = "父类型编号，多个id逗号")
    private String categoryParentIds;

    /**
     * 栏目管理名称
     */
    @Excel(name = "栏目管理名称")
    private String categoryTitle;

    /**
     * 栏目banner图
     */
    @Excel(name = "栏目banner图")
    private String categoryImg;

    /**
     * 栏目小图
     */
    @Excel(name = "栏目小图")
    private String categoryIco;

    /**
     * 栏目副标题
     */
    @Excel(name = "栏目副标题")
    private String categoryShortTitle;

    /**
     * 栏目属性
     */
    @Excel(name = "栏目属性")
    private String categoryFlag;

    /**
     * 栏目是否显示
     */
    @Excel(name = "栏目是否显示")
    private String categoryDisplay;

    /**
     * 栏目是否被搜索
     */
    @Excel(name = "栏目是否被搜索")
    private String categoryIsSearch;

    /**
     * 栏目管理描述
     */
    @Excel(name = "栏目管理描述")
    private String categoryDescrip;

    /**
     * 栏目管理关键字
     */
    @Excel(name = "栏目管理关键字")
    private String categoryKeyword;

    /**
     * 栏目路径
     */
    @Excel(name = "栏目路径")
    private String categoryPath;

    /**
     * 自定义链接
     */
    @Excel(name = "自定义链接")
    private String categoryDiyUrl;

    /**
     * 内容模板
     */
    @Excel(name = "内容模板")
    private String categoryUrl;

    /**
     * 列表模板
     */
    @Excel(name = "列表模板")
    private String categoryListUrl;

    /**
     * 栏目管理属性
     */
    @Excel(name = "栏目管理属性")
    private String categoryType;

    /**
     * 栏目拼音
     */
    @Excel(name = "栏目拼音")
    private String categoryPinyin;

    /**
     * 自定义顺序
     */
    @Excel(name = "自定义顺序")
    private Long categorySort;

    /**
     * 扩展业务标记
     */
    @Excel(name = "扩展业务标记")
    private String isChild;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateDate;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createDate;

    /**
     * 删除标记
     */
    @Excel(name = "删除标记")
    private Long del;

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setCategoryId(String categoryId) {
        this.categoryId = categoryId;
    }

    public String getCategoryId() {
        return categoryId;
    }

    public void setLeaf(Long leaf) {
        this.leaf = leaf;
    }

    public Long getLeaf() {
        return leaf;
    }

    public void setTopId(String topId) {
        this.topId = topId;
    }

    public String getTopId() {
        return topId;
    }

    public void setDictId(Long dictId) {
        this.dictId = dictId;
    }

    public Long getDictId() {
        return dictId;
    }

    public void setMdiyModelId(String mdiyModelId) {
        this.mdiyModelId = mdiyModelId;
    }

    public String getMdiyModelId() {
        return mdiyModelId;
    }

    public void setMdiyCategoryModelId(String mdiyCategoryModelId) {
        this.mdiyCategoryModelId = mdiyCategoryModelId;
    }

    public String getMdiyCategoryModelId() {
        return mdiyCategoryModelId;
    }

    public void setCategoryParentIds(String categoryParentIds) {
        this.categoryParentIds = categoryParentIds;
    }

    public String getCategoryParentIds() {
        return categoryParentIds;
    }

    public void setCategoryTitle(String categoryTitle) {
        this.categoryTitle = categoryTitle;
    }

    public String getCategoryTitle() {
        return categoryTitle;
    }

    public void setCategoryImg(String categoryImg) {
        this.categoryImg = categoryImg;
    }

    public String getCategoryImg() {
        return categoryImg;
    }

    public void setCategoryIco(String categoryIco) {
        this.categoryIco = categoryIco;
    }

    public String getCategoryIco() {
        return categoryIco;
    }

    public void setCategoryShortTitle(String categoryShortTitle) {
        this.categoryShortTitle = categoryShortTitle;
    }

    public String getCategoryShortTitle() {
        return categoryShortTitle;
    }

    public void setCategoryFlag(String categoryFlag) {
        this.categoryFlag = categoryFlag;
    }

    public String getCategoryFlag() {
        return categoryFlag;
    }

    public void setCategoryDisplay(String categoryDisplay) {
        this.categoryDisplay = categoryDisplay;
    }

    public String getCategoryDisplay() {
        return categoryDisplay;
    }

    public void setCategoryIsSearch(String categoryIsSearch) {
        this.categoryIsSearch = categoryIsSearch;
    }

    public String getCategoryIsSearch() {
        return categoryIsSearch;
    }

    public void setCategoryDescrip(String categoryDescrip) {
        this.categoryDescrip = categoryDescrip;
    }

    public String getCategoryDescrip() {
        return categoryDescrip;
    }

    public void setCategoryKeyword(String categoryKeyword) {
        this.categoryKeyword = categoryKeyword;
    }

    public String getCategoryKeyword() {
        return categoryKeyword;
    }

    public void setCategoryPath(String categoryPath) {
        this.categoryPath = categoryPath;
    }

    public String getCategoryPath() {
        return categoryPath;
    }

    public void setCategoryDiyUrl(String categoryDiyUrl) {
        this.categoryDiyUrl = categoryDiyUrl;
    }

    public String getCategoryDiyUrl() {
        return categoryDiyUrl;
    }

    public void setCategoryUrl(String categoryUrl) {
        this.categoryUrl = categoryUrl;
    }

    public String getCategoryUrl() {
        return categoryUrl;
    }

    public void setCategoryListUrl(String categoryListUrl) {
        this.categoryListUrl = categoryListUrl;
    }

    public String getCategoryListUrl() {
        return categoryListUrl;
    }

    public void setCategoryType(String categoryType) {
        this.categoryType = categoryType;
    }

    public String getCategoryType() {
        return categoryType;
    }

    public void setCategoryPinyin(String categoryPinyin) {
        this.categoryPinyin = categoryPinyin;
    }

    public String getCategoryPinyin() {
        return categoryPinyin;
    }

    public void setCategorySort(Long categorySort) {
        this.categorySort = categorySort;
    }

    public Long getCategorySort() {
        return categorySort;
    }

    public void setIsChild(String isChild) {
        this.isChild = isChild;
    }

    public String getIsChild() {
        return isChild;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setDel(Long del) {
        this.del = del;
    }

    public Long getDel() {
        return del;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("categoryId", getCategoryId())
                .append("leaf", getLeaf())
                .append("topId", getTopId())
                .append("dictId", getDictId())
                .append("mdiyModelId", getMdiyModelId())
                .append("mdiyCategoryModelId", getMdiyCategoryModelId())
                .append("categoryParentIds", getCategoryParentIds())
                .append("categoryTitle", getCategoryTitle())
                .append("categoryImg", getCategoryImg())
                .append("categoryIco", getCategoryIco())
                .append("categoryShortTitle", getCategoryShortTitle())
                .append("categoryFlag", getCategoryFlag())
                .append("categoryDisplay", getCategoryDisplay())
                .append("categoryIsSearch", getCategoryIsSearch())
                .append("categoryDescrip", getCategoryDescrip())
                .append("categoryKeyword", getCategoryKeyword())
                .append("categoryPath", getCategoryPath())
                .append("categoryDiyUrl", getCategoryDiyUrl())
                .append("categoryUrl", getCategoryUrl())
                .append("categoryListUrl", getCategoryListUrl())
                .append("categoryType", getCategoryType())
                .append("categoryPinyin", getCategoryPinyin())
                .append("categorySort", getCategorySort())
                .append("isChild", getIsChild())
                .append("updateDate", getUpdateDate())
                .append("updateBy", getUpdateBy())
                .append("createDate", getCreateDate())
                .append("createBy", getCreateBy())
                .append("del", getDel())
                .toString();
    }
}
